#include <iostream>

using namespace std;



/* Type define */
typedef struct{
    int numTaps; 		/**< number of filter coefficients in the filter. */
    int istate; 		/**< Index of pstate buffer. */
    double *pState; 	/**< points to the state variable array. The array is of length numTaps*2. */
    const double *pCoeffs; 	/**< points to the coefficient array. The array is of length numTaps. */
}FIRstate_T;

/* privert data */
const double ebfilter_coeffs[] = {
        -0.000747753931321907,	-0.000744011419153129,
        -0.000740272651368711,	-0.000736537627968655,	-0.000732806348952960,	-0.000729078814321625,	-0.000725355024074652,
        -0.000721634978212039,	-0.000717918676733788,	-0.000714206119639897,	-0.000710497306930367,	-0.000706792238605199,
        -0.000703090914664391,	-0.000699393335107944,	-0.000695699499935858,	-0.000692009409148133,	-0.000688323062744769,
        -0.000684640460725766,	-0.000680961603091124,	-0.000677286489840843,	-0.000673615120974923,	-0.000669947496493364,
        -0.000666283616396166,	-0.000662623480683329,	-0.000658967089354852,	-0.000655314442410737,	-0.000651665539850983,
        -0.000648020381675589,	-0.000644378967884557,	-0.000640741298477886,	-0.000637107373455575,	-0.000633477192817625,
        -0.000629850756564037,	-0.000626228064694809,	-0.000622609117209943,	-0.000618993914109437,	-0.000615382455393292,
        -0.000611774741061508,	-0.000608170771114085,	-0.000604570545551024,	-0.000600974064372323,	-0.000597381327577983,
        -0.000593792335168004,	-0.000590207087142386,	-0.000586625583501129,	-0.000583047824244232,	-0.000579473809371697,
        -0.000575903538883523,	-0.000572337012779710,	-0.000568774231060257,	-0.000565215193725166,	-0.000561659900774436,
        -0.000558108352208066,	-0.000554560548026058,	-0.000551016488228411,	-0.000547476172815124,	-0.000543939601786198,
        -0.000540406775141634,	-0.000536877692881430,	-0.000533352355005587,	-0.000529830761514106,	-0.000526312912406985,
        -0.000522798807684225,	-0.000519288447345826,	-0.000515781831391788,	-0.000512278959822111,	-0.000508779832636795,
        -0.000505284449835840,	-0.000501792811419246,	-0.000498304917387013,	-0.000494820767739141,	-0.000491340362475630,
        -0.000487863701596480,	-0.000484390785101690,	-0.000480921612991262,	-0.000477456185265195,	-0.000473994501923488,
        -0.000470536562966143,	-0.000467082368393158,	-0.000463631918204535,	-0.000460185212400272,	-0.000456742250980370,
        -0.000453303033944830,	-0.000449867561293650,	-0.000446435833026831,	-0.000443007849144374,	-0.000439583609646277,
        -0.000436163114532541,	-0.000432746363803166,	-0.000429333357458152,	-0.000425924095497499,	-0.000422518577921207,
        -0.000419116804729276,	-0.000415718775921706,	-0.000412324491498497,	-0.000408933951459649,	-0.000405547155805161,
        -0.000402164104535035,	-0.000398784797649270,	-0.000395409235147866,	-0.000392037417030822,	-0.000388669343298140,
        -0.000385305013949818,	-0.000381944428985858,	-0.000378587588406258,	-0.000375234492211020,	-0.000371885140400142,
        -0.000368539532973625,	-0.000365197669931469,	-0.000361859551273675,	-0.000358525177000241,	-0.000355194547111168,
        -0.000351867661606456,	-0.000348544520486105,	-0.000345225123750115,	-0.000341909471398486,	-0.000338597563431218,
        -0.000335289399848311,	-0.000331984980649765,	-0.000328684305835580,	-0.000325387375405756,	-0.000322094189360292,
        -0.000318804747699190,	-0.000315519050422449,	-0.000312237097530068,	-0.000308958889022049,	-0.000305684424898390,
        -0.000302413705159093,	-0.000299146729804157,	-0.000295883498833581,	-0.000292624012247366,	-0.000289368270045513,
        -0.000286116272228020,	-0.000282868018794888,	-0.000279623509746117,	-0.000276382745081707,	-0.000273145724801659,
        -0.000269912448905971,	-0.000266682917394644,	-0.000263457130267678,	-0.000260235087525073,	-0.000257016789166829,
        -0.000253802235192946,	-0.000250591425603423,	-0.000247384360398262,	-0.000244181039577462,	-0.000240981463141023,
        -0.000237785631088944,	-0.000234593543421227,	-0.000231405200137870,	-0.000228220601238875,	-0.000225039746724240,
        -0.000221862636593967,	-0.000218689270848054,	-0.000215519649486503,	-0.000212353772509312,	-0.000209191639916482,
        -0.000206033251708014,	-0.000202878607883906,	-0.000199727708444159,	-0.000196580553388773,	-0.000193437142717748,
        -0.000190297476431084,	-0.000187161554528781,	-0.000184029377010839,	-0.000180900943877258,	-0.000177776255128038,
        -0.000174655310763179,	-0.000171538110782681,	-0.000168424655186543,	-0.000165314943974767,	-0.000162208977147352,
        -0.000159106754704298,	-0.000156008276645604,	-0.000152913542971272,	-0.000149822553681300,	-0.000146735308775690,
        -0.000143651808254440,	-0.000140572052117551,	-0.000137496040365024,	-0.000134423772996857,	-0.000131355250013051,
        -0.000128290471413607,	-0.000125229437198523,	-0.000122172147367800,	-0.000119118601921438,	-0.000116068800859437,
        -0.000113022744181797,	-0.000109980431888518,	-0.000106941863979600,	-0.000103907040455043,	-0.000100875961314847,
        -9.78486265590117e-05,	-9.48250361875374e-05,	-9.18051902004242e-05,	-8.87890885976719e-05,	-8.57767313792806e-05,
        -8.27681185452503e-05,	-7.97632500955806e-05,	-7.67621260302722e-05,	-7.37647463493247e-05,	-7.07711110527381e-05,
        -6.77812201405127e-05,	-6.47950736126480e-05,	-6.18126714691443e-05,	-5.88340137100015e-05,	-5.58591003352197e-05,
        -5.28879313447990e-05,	-4.99205067387391e-05,	-4.69568265170403e-05,	-4.39968906797023e-05,	-4.10406992267254e-05,
        -3.80882521581093e-05,	-3.51395494738543e-05,	-3.21945911739603e-05,	-2.92533772584272e-05,	-2.63159077272549e-05,
        -2.33821825804437e-05,	-2.04522018179934e-05,	-1.75259654399041e-05,	-1.46034734461758e-05,	-1.16847258368084e-05,
        -8.76972261180194e-06,	-5.85846377115666e-06,	-2.95094931487210e-06,	-4.71792429484976e-08,	2.85284644461394e-06,
        5.74912774781566e-06,	8.64166466665642e-06,	1.15304572011360e-05,	1.44155053512549e-05,	1.72968091170126e-05,
        2.01743684984094e-05,	2.30481834954454e-05,	2.59182541081202e-05,	2.87845803364342e-05,	3.16471621803871e-05,
        3.45059996399791e-05,	3.73610927152102e-05,	4.02124414060803e-05,	4.30600457125895e-05,	4.59039056347377e-05,
        4.87440211725250e-05,	5.15803923259514e-05,	5.44130190950165e-05,	5.72419014797210e-05,	6.00670394800645e-05,
        6.28884330960468e-05,	6.57060823276684e-05,	6.85199871749288e-05,	7.13301476378285e-05,	7.41365637163670e-05,
        7.69392354105446e-05,	7.97381627203613e-05,	8.25333456458172e-05,	8.53247841869119e-05,	8.81124783436457e-05,
        9.08964281160186e-05,	9.36766335040305e-05,	9.64530945076815e-05,	9.92258111269715e-05,	0.000101994783361901,
        0.000104760011212468,	0.000107521494678676,	0.000110279233760522,	0.000113033228458007,	0.000115783478771131,
        0.000118529984699895,	0.000121272746244297,	0.000124011763404338,	0.000126747036180019,	0.000129478564571338,
        0.000132206348578296,	0.000134930388200894,	0.000137650683439131,	0.000140367234293006,	0.000143080040762521,
        0.000145789102847674,	0.000148494420548467,	0.000151195993864899,	0.000153893822796970,	0.000156587907344680,
        0.000159278247508028,	0.000161964843287016,	0.000164647694681643,	0.000167326801691909,	0.000170002164317814,
        0.000172673782559359,	0.000175341656416542,	0.000178005785889364,	0.000180666170977825,	0.000183322811681925,
        0.000185975708001665,	0.000188624859937043,	0.000191270267488060,	0.000193911930654717,	0.000196549849437012,
        0.000199184023834947,	0.000201814453848520,	0.000204441139477733,	0.000207064080722585,	0.000209683277583075,
        0.000212298730059205,	0.000214910438150974,	0.000217518401858382,	0.000220122621181428,	0.000222723096120114,
        0.000225319826674439,	0.000227912812844403,	0.000230502054630006,	0.000233087552031248,	0.000235669305048129,
        0.000238247313680649,	0.000240821577928809,	0.000243392097792607,	0.000245958873272044,	0.000248521904367120,
        0.000251081191077836,	0.000253636733404190,	0.000256188531346183,	0.000258736584903816,	0.000261280894077087,
        0.000263821458865998,	0.000266358279270547,	0.000268891355290736,	0.000271420686926564,	0.000273946274178031,
        0.000276468117045136,	0.000278986215527881,	0.000281500569626265,	0.000284011179340288,	0.000286518044669950,
        0.000289021165615251,	0.000291520542176191,	0.000294016174352770,	0.000296508062144988,	0.000298996205552845,
        0.000301480604576341,	0.000303961259215476,	0.000306438169470251,	0.000308911335340664,	0.000311380756826716,
        0.000313846433928408,	0.000316308366645738,	0.000318766554978707,	0.000321220998927316,	0.000323671698491563,
        0.000326118653671450,	0.000328561864466976,	0.000331001330878140,	0.000333437052904944,	0.000335869030547387,
        0.000338297263805468,	0.000340721752679189,	0.000343142497168549,	0.000345559497273548,	0.000347972752994186,
        0.000350382264330463,	0.000352788031282379,	0.000355190053849934,	0.000357588332033128,	0.000359982865831961,
        0.000362373655246434,	0.000364760700276545,	0.000367144000922295,	0.000369523557183684,	0.000371899369060713,
        0.000374271436553380,	0.000376639759661687,	0.000379004338385632,	0.000381365172725217,	0.000383722262680440,
        0.000386075608251303,	0.000388425209437804,	0.000390771066239945,	0.000393113178657725,	0.000395451546691144,
        0.000397786170340201,	0.000400117049604898,	0.000402444184485234,	0.000404767574981209,	0.000407087221092823,
        0.000409403122820076,	0.000411715280162968,	0.000414023693121499,	0.000416328361695669,	0.000418629285885478,
        0.000420926465690927,	0.000423219901112014,	0.000425509592148740,	0.000427795538801106,	0.000430077741069110,
        0.000432356198952753,	0.000434630912452036,	0.000436901881566957,	0.000439169106297518,	0.000441432586643717,
        0.000443692322605556,	0.000445948314183034,	0.000448200561376151,	0.000450449064184906,	0.000452693822609301,
        0.000454934836649335,	0.000457172106305008,	0.000459405631576320,	0.000461635412463271,	0.000463861448965861,
        0.000466083741084090,	0.000468302288817958,	0.000470517092167465,	0.000472728151132611,	0.000474935465713396,
        0.000477139035909821,	0.000479338861721884,	0.000481534943149586,	0.000483727280192927,	0.000485915872851908,
        0.000488100721126527,	0.000490281825016786,	0.000492459184522683,	0.000494632799644220,	0.000496802670381396,
        0.000498968796734210,	0.000501131178702664,	0.000503289816286757,	0.000505444709486489,	0.000507595858301859,
        0.000509743262732869,	0.000511886922779518,	0.000514026838441806,	0.000516163009719733,	0.000518295436613299,
        0.000520424119122504,	0.000522549057247348,	0.000524670250987831,	0.000526787700343954,	0.000528901405315715,
        0.000531011365903115,	0.000533117582106155,	0.000535220053924833,	0.000537318781359150,	0.000539413764409107,
        0.000541505003074702,	0.000543592497355937,	0.000545676247252810,	0.000547756252765323,	0.000549832513893475,
        0.000551905030637265,	0.000553973802996695,	0.000556038830971764,	0.000558100114562471,	0.000560157653768818,
        0.000562211448590804,	0.000564261499028429,	0.000566307805081693,	0.000568350366750596,	0.000570389184035138,
        0.000572424256935319,	0.000574455585451140,	0.000576483169582599,	0.000578507009329697,	0.000580527104692434,
        0.000582543455670811,	0.000584556062264826,	0.000586564924474480,	0.000588570042299774,	0.000590571415740706,
        0.000592569044797278,	0.000594562929469488,	0.000596553069757338,	0.000598539465660827,	0.000600522117179954,
        0.000602501024314721,	0.000604476187065127,	0.000606447605431171,	0.000608415279412855,	0.000610379209010178,
        0.000612339394223140,	0.000614295835051741,	0.000616248531495981,	0.000618197483555860,	0.000620142691231378,
        0.000622084154522535,	0.000624021873429332,	0.000625955847951767,	0.000627886078089841,	0.000629812563843554,
        0.000631735305212907,	0.000633654302197898,	0.000635569554798528,	0.000637481063014798,	0.000639388826846706,
        0.000641292846294254,	0.000643193121357441,	0.000645089652036266,	0.000646982438330731,	0.000648871480240835,
        0.000650756777766577,	0.000652638330907959,	0.000654516139664980,	0.000656390204037640,	0.000658260524025939,
        0.000660127099629877,	0.000661989930849454,	0.000663849017684670,	0.000665704360135525,	0.000667555958202019,
        0.000669403811884152,	0.000671247921181924,	0.000673088286095336,	0.000674924906624386,	0.000676757782769075,
        0.000678586914529404,	0.000680412301905371,	0.000682233944896977,	0.000684051843504223,	0.000685865997727107,
        0.000687676407565631,	0.000689483073019794,	0.000691285994089595,	0.000693085170775036,	0.000694880603076116,
        0.000696672290992835,	0.000698460234525192,	0.000700244433673189,	0.000702024888436825,	0.000703801598816100,
        0.000705574564811014,	0.000707343786421567,	0.000709109263647759,	0.000710870996489590,	0.000712628984947061,
        0.000714383229020170,	0.000716133728708918,	0.000717880484013305,	0.000719623494933332,	0.000721362761468997,
        0.000723098283620301,	0.000724830061387245,	0.000726558094769827,	0.000728282383768049,	0.000730002928381909,
        0.000731719728611409,	0.000733432784456548,	0.000735142095917325,	0.000736847662993742,	0.000738549485685798,
        0.000740247563993493,	0.000741941897916826,	0.000743632487455799,	0.000745319332610411,	0.000747002433380662,
        0.000748681789766552,	0.000750357401768081,	0.000752029269385249,	0.000753697392618057,	0.000755361771466503,
        0.000757022405930588,	0.000758679296010312,	0.000760332441705676,	0.000761981843016678,	0.000763627499943319,
        0.000765269412485600,	0.000766907580643519,	0.000768542004417078,	0.000770172683806275,	0.000771799618811112,
        0.000773422809431588,	0.000775042255667702,	0.000776657957519456,	0.000778269914986849,	0.000779878128069881,
        0.000781482596768551,	0.000783083321082861,	0.000784680301012810,	0.000786273536558398,	0.000787863027719625,
        0.000789448774496491,	0.000791030776888996,	0.000792609034897140,	0.000794183548520924,	0.000795754317760346,
        0.000797321342615407,	0.000798884623086107,	0.000800444159172447,	0.000801999950874425,	0.000803551998192042,
        0.000805100301125299,	0.000806644859674194,	0.000808185673838729,	0.000809722743618903,	0.000811256069014715,
        0.000812785650026167,	0.000814311486653258,	0.000815833578895987,	0.000817351926754356,	0.000818866530228364,
        0.000820377389318011,	0.000821884504023297,	0.000823387874344222,	0.000824887500280786,	0.000826383381832989,
        0.000827875519000831,	0.000829363911784312,	0.000830848560183432,	0.000832329464198191,	0.000833806623828590,
        0.000835280039074627,	0.000836749709936303,	0.000838215636413619,	0.000839677818506573,	0.000841136256215166,
        0.000842590949539399,	0.000844041898479270,	0.000845489103034781,	0.000846932563205931,	0.000848372278992719,
        0.000849808250395147,	0.000851240477413214,	0.000852668960046920,	0.000854093698296264,	0.000855514692161248,
        0.000856931941641871,	0.000858345446738133,	0.000859755207450034,	0.000861161223777574,	0.000862563495720753,
        0.000863962023279571,	0.000865356806454028,	0.000866747845244125,	0.000868135139649860,	0.000869518689671234,
        0.000870898495308247,	0.000872274556560900,	0.000873646873429191,	0.000875015445913122,	0.000876380274012691,
        0.000877741357727900,	0.000879098697058747,	0.000880452292005234,	0.000881802142567359,	0.000883148248745124,
        0.000884490610538528,	0.000885829227947571,	0.000887164100972252,	0.000888495229612573,	0.000889822613868533,
        0.000891146253740132,	0.000892466149227370,	0.000893782300330247,	0.000895094707048763,	0.000896403369382918,
        0.000897708287332712,	0.000899009460898146,	0.000900306890079218,	0.000901600574875929,	0.000902890515288279,
        0.000904176711316269,	0.000905459162959897,	0.000906737870219164,	0.000908012833094071,	0.000909284051584616,
        0.000910551525690801,	0.000911815255412625,	0.000913075240750087,	0.000914331481703189,	0.000915583978271930,
        0.000916832730456309,	0.000918077738256328,	0.000919319001671986,	0.000920556520703283,	0.000921790295350219,
        0.000923020325612794,	0.000924246611491008,	0.000925469152984861,	0.000926687950094353,	0.000927903002819484,
        0.000929114311160254,	0.000930321875116663,	0.000931525694688712,	0.000932725769876399,	0.000933922100679725,
        0.000935114687098691,	0.000936303529133295,	0.000937488626783538,	0.000938669980049421,	0.000939847588930942,
        0.000941021453428103,	0.000942191573540903,	0.000943357949269341,	0.000944520580613419,	0.000945679467573136,
        0.000946834610148492,	0.000947986008339486,	0.000949133662146120,	0.000950277571568393,	0.000951417736606305,
        0.000952554157259856,	0.000953686833529046,	0.000954815765413875,	0.000955940952914343,	0.000957062396030451,
        0.000958180094762197,	0.000959294049109582,	0.000960404259072606,	0.000961510724651270,	0.000962613445845572,
        0.000963712422655513,	0.000964807655081094,	0.000965899143122313,	0.000966986886779172,	0.000968070886051669,
        0.000969151140939806,	0.000970227651443582,	0.000971300417562996,	0.000972369439298050,	0.000973434716648743,
        0.000974496249615075,	0.000975554038197046,	0.000976608082394656,	0.000977658382207905,	0.000978704937636793,
        0.000979747748681320,	0.000980786815341486,	0.000981822137617291,	0.000982853715508735,	0.000983881549015818,
        0.000984905638138540,	0.000985925982876902,	0.000986942583230902,	0.000987955439200541,	0.000988964550785820,
        0.000989969917986737,	0.000990971540803294,	0.000991969419235489,	0.000992963553283324,	0.000993953942946797,
        0.000994940588225910,	0.000995923489120662,	0.000996902645631052,	0.000997878057757082,	0.000998849725498751,
        0.000999817648856059,	0.00100078182782901,	0.00100174226241759,	0.00100269895262182,	0.00100365189844168,
        0.00100460109987718,	0.00100554655692833,	0.00100648826959511,	0.00100742623787753,	0.00100836046177559,
        0.00100929094128928,	0.00101021767641862,	0.00101114066716360,	0.00101205991352421,	0.00101297541550047,
        0.00101388717309236,	0.00101479518629989,	0.00101569945512307,	0.00101659997956188,	0.00101749675961633,
        0.00101838979528641,	0.00101927908657214,	0.00102016463347351,	0.00102104643599051,	0.00102192449412316,
        0.00102279880787144,	0.00102366937723537,	0.00102453620221493,	0.00102539928281013,	0.00102625861902097,
        0.00102711421084745,	0.00102796605828957,	0.00102881416134732,	0.00102965852002072,	0.00103049913430976,
        0.00103133600421443,	0.00103216912973474,	0.00103299851087070,	0.00103382414762229,	0.00103464603998952,
        0.00103546418797239,	0.00103627859157090,	0.00103708925078504,	0.00103789616561483,	0.00103869933606025,
        0.00103949876212132,	0.00104029444379802,	0.00104108638109037,	0.00104187457399835,	0.00104265902252197,
        0.00104343972666123,	0.00104421668641613,	0.00104498990178667,	0.00104575937277284,	0.00104652509937466,
        0.00104728708159211,	0.00104804531942521,	0.00104879981287394,	0.00104955056193831,	0.00105029756661832,
        0.00105104082691398,	0.00105178034282526,	0.00105251611435219,	0.00105324814149476,	0.00105397642425297,
        0.00105470096262681,	0.00105542175661630,	0.00105613880622142,	0.00105685211144218,	0.00105756167227858,
        0.00105826748873063,	0.00105896956079831,	0.00105966788848162,	0.00106036247178058,	0.00106105331069518,
        0.00106174040522541,	0.00106242375537129,	0.00106310336113280,	0.00106377922250996,	0.00106445133950275,
        0.00106511971211118,	0.00106578434033525,	0.00106644522417496,	0.00106710236363031,	0.00106775575870130,
        0.00106840540938792,	0.00106905131569019,	0.00106969347760809,	0.00107033189514163,	0.00107096656829082,
        0.00107159749705564,	0.00107222468143610,	0.00107284812143220,	0.00107346781704394,	0.00107408376827132,
        0.00107469597511433,	0.00107530443757299,	0.00107590915564728,	0.00107651012933722,	0.00107710735864279,
        0.00107770084356400,	0.00107829058410085,	0.00107887658025334,	0.00107945883202147,	0.00108003733940524,
        0.00108061210240465,	0.00108118312101969,	0.00108175039525038,	0.00108231392509670,	0.00108287371055867,
        0.00108342975163627,	0.00108398204832951,	0.00108453060063839,	0.00108507540856291,	0.00108561647210307,
        0.00108615379125887,	0.00108668736603030,	0.00108721719641738,	0.00108774328242009,	0.00108826562403845,
        0.00108878422127244,	0.00108929907412207,	0.00108981018258734,	0.00109031754666825,	0.00109082116636480,
        0.00109132104167699,	0.00109181717260482,	0.00109230955914828,	0.00109279820130739,	0.00109328309908213,
        0.00109376425247251,	0.00109424166147854,	0.00109471532610020,	0.00109518524633750,	0.00109565142219044,
        0.00109611385365902,	0.00109657254074323,	0.00109702748344309,	0.00109747868175859,	0.00109792613568972,
        0.00109836984523649,	0.00109880981039891,	0.00109924603117696,	0.00109967850757065,	0.00110010723957998,
        0.00110053222720495,	0.00110095347044556,	0.00110137096930180,	0.00110178472377369,	0.00110219473386121,
        0.00110260099956438,	0.00110300352088318,	0.00110340229781762,	0.00110379733036770,	0.00110418861853342,
        0.00110457616231478,	0.00110495996171178,	0.00110534001672442,	0.00110571632735270,	0.00110608889359661,
        0.00110645771545617,	0.00110682279293136,	0.00110718412602219,	0.00110754171472866,	0.00110789555905077,
        0.00110824565898852,	0.00110859201454191,	0.00110893462571094,	0.00110927349249561,	0.00110960861489591,
        0.00110993999291186,	0.00111026762654344,	0.00111059151579066,	0.00111091166065353,	0.00111122806113203,
        0.00111154071722617,	0.00111184962893595,	0.00111215479626136,	0.00111245621920242,	0.00111275389775912,
        0.00111304783193145,	0.00111333802171943,	0.00111362446712304,	0.00111390716814229,	0.00111418612477718,
        0.00111446133702771,	0.00111473280489388,	0.00111500052837569,	0.00111526450747314,	0.00111552474218623,
        0.00111578123251495,	0.00111603397845932,	0.00111628298001932,	0.00111652823719496,	0.00111676974998625,
        0.00111700751839317,	0.00111724154241573,	0.00111747182205393,	0.00111769835730776,	0.00111792114817724,
        0.00111814019466236,	0.00111835549676311,	0.00111856705447951,	0.00111877486781154,	0.00111897893675921,
        0.00111917926132252,	0.00111937584150147,	0.00111956867729606,	0.00111975776870629,	0.00111994311573216,
        0.00112012471837367,	0.00112030257663081,	0.00112047669050360,	0.00112064705999202,	0.00112081368509608,
        0.00112097656581578,	0.00112113570215112,	0.00112129109410210,	0.00112144274166872,	0.00112159064485098,
        0.00112173480364888,	0.00112187521806241,	0.00112201188809159,	0.00112214481373640,	0.00112227399499686,
        0.00112239943187295,	0.00112252112436468,	0.00112263907247205,	0.00112275327619506,	0.00112286373553371,
        0.00112297045048799,	0.00112307342105792,	0.00112317264724349,	0.00112326812904469,	0.00112335986646153,
        0.00112344785949402,	0.00112353210814214,	0.00112361261240590,	0.00112368937228530,	0.00112376238778034,
        0.00112383165889101,	0.00112389718561733,	0.00112395896795929,	0.00112401700591688,	0.00112407129949012,
        0.00112412184867899,	0.00112416865348350,	0.00112421171390365,	0.00112425102993944,	0.00112428660159087,
        0.00112431842885794,	0.00112434651174065,	0.00112437085023899,	0.00112439144435298,	0.00112440829408260,
        0.00112442139942787,	0.00112443076038877,	0.00112443637696531,	0.00112443824915749,	0.00112443637696531,
        0.00112443076038877,	0.00112442139942787,	0.00112440829408260,	0.00112439144435298,	0.00112437085023899,
        0.00112434651174065,	0.00112431842885794,	0.00112428660159087,	0.00112425102993944,	0.00112421171390365,
        0.00112416865348350,	0.00112412184867899,	0.00112407129949012,	0.00112401700591688,	0.00112395896795929,
        0.00112389718561733,	0.00112383165889101,	0.00112376238778034,	0.00112368937228530,	0.00112361261240590,
        0.00112353210814214,	0.00112344785949402,	0.00112335986646153,	0.00112326812904469,	0.00112317264724349,
        0.00112307342105792,	0.00112297045048799,	0.00112286373553371,	0.00112275327619506,	0.00112263907247205,
        0.00112252112436468,	0.00112239943187295,	0.00112227399499686,	0.00112214481373640,	0.00112201188809159,
        0.00112187521806241,	0.00112173480364888,	0.00112159064485098,	0.00112144274166872,	0.00112129109410210,
        0.00112113570215112,	0.00112097656581578,	0.00112081368509608,	0.00112064705999202,	0.00112047669050360,
        0.00112030257663081,	0.00112012471837367,	0.00111994311573216,	0.00111975776870629,	0.00111956867729606,
        0.00111937584150147,	0.00111917926132252,	0.00111897893675921,	0.00111877486781154,	0.00111856705447951,
        0.00111835549676311,	0.00111814019466236,	0.00111792114817724,	0.00111769835730776,	0.00111747182205393,
        0.00111724154241573,	0.00111700751839317,	0.00111676974998625,	0.00111652823719496,	0.00111628298001932,
        0.00111603397845932,	0.00111578123251495,	0.00111552474218623,	0.00111526450747314,	0.00111500052837569,
        0.00111473280489388,	0.00111446133702771,	0.00111418612477718,	0.00111390716814229,	0.00111362446712304,
        0.00111333802171943,	0.00111304783193145,	0.00111275389775912,	0.00111245621920242,	0.00111215479626136,
        0.00111184962893595,	0.00111154071722617,	0.00111122806113203,	0.00111091166065353,	0.00111059151579066,
        0.00111026762654344,	0.00110993999291186,	0.00110960861489591,	0.00110927349249561,	0.00110893462571094,
        0.00110859201454191,	0.00110824565898852,	0.00110789555905077,	0.00110754171472866,	0.00110718412602219,
        0.00110682279293136,	0.00110645771545617,	0.00110608889359661,	0.00110571632735270,	0.00110534001672442,
        0.00110495996171178,	0.00110457616231478,	0.00110418861853342,	0.00110379733036770,	0.00110340229781762,
        0.00110300352088318,	0.00110260099956438,	0.00110219473386121,	0.00110178472377369,	0.00110137096930180,
        0.00110095347044556,	0.00110053222720495,	0.00110010723957998,	0.00109967850757065,	0.00109924603117696,
        0.00109880981039891,	0.00109836984523649,	0.00109792613568972,	0.00109747868175859,	0.00109702748344309,
        0.00109657254074323,	0.00109611385365902,	0.00109565142219044,	0.00109518524633750,	0.00109471532610020,
        0.00109424166147854,	0.00109376425247252,	0.00109328309908213,	0.00109279820130739,	0.00109230955914828,
        0.00109181717260482,	0.00109132104167699,	0.00109082116636480,	0.00109031754666825,	0.00108981018258734,
        0.00108929907412207,	0.00108878422127244,	0.00108826562403845,	0.00108774328242009,	0.00108721719641738,
        0.00108668736603030,	0.00108615379125887,	0.00108561647210307,	0.00108507540856291,	0.00108453060063839,
        0.00108398204832951,	0.00108342975163627,	0.00108287371055867,	0.00108231392509670,	0.00108175039525038,
        0.00108118312101969,	0.00108061210240465,	0.00108003733940524,	0.00107945883202147,	0.00107887658025334,
        0.00107829058410085,	0.00107770084356400,	0.00107710735864279,	0.00107651012933722,	0.00107590915564728,
        0.00107530443757299,	0.00107469597511433,	0.00107408376827132,	0.00107346781704394,	0.00107284812143220,
        0.00107222468143610,	0.00107159749705564,	0.00107096656829082,	0.00107033189514164,	0.00106969347760809,
        0.00106905131569019,	0.00106840540938792,	0.00106775575870130,	0.00106710236363031,	0.00106644522417496,
        0.00106578434033525,	0.00106511971211118,	0.00106445133950275,	0.00106377922250996,	0.00106310336113280,
        0.00106242375537129,	0.00106174040522542,	0.00106105331069518,	0.00106036247178058,	0.00105966788848162,
        0.00105896956079831,	0.00105826748873063,	0.00105756167227859,	0.00105685211144218,	0.00105613880622142,
        0.00105542175661630,	0.00105470096262681,	0.00105397642425297,	0.00105324814149476,	0.00105251611435219,
        0.00105178034282527,	0.00105104082691398,	0.00105029756661833,	0.00104955056193831,	0.00104879981287394,
        0.00104804531942521,	0.00104728708159211,	0.00104652509937466,	0.00104575937277284,	0.00104498990178667,
        0.00104421668641613,	0.00104343972666123,	0.00104265902252197,	0.00104187457399835,	0.00104108638109037,
        0.00104029444379802,	0.00103949876212132,	0.00103869933606026,	0.00103789616561483,	0.00103708925078504,
        0.00103627859157090,	0.00103546418797239,	0.00103464603998952,	0.00103382414762229,	0.00103299851087070,
        0.00103216912973474,	0.00103133600421443,	0.00103049913430976,	0.00102965852002072,	0.00102881416134732,
        0.00102796605828957,	0.00102711421084745,	0.00102625861902097,	0.00102539928281013,	0.00102453620221493,
        0.00102366937723537,	0.00102279880787144,	0.00102192449412316,	0.00102104643599052,	0.00102016463347351,
        0.00101927908657214,	0.00101838979528641,	0.00101749675961633,	0.00101659997956188,	0.00101569945512307,
        0.00101479518629989,	0.00101388717309236,	0.00101297541550047,	0.00101205991352421,	0.00101114066716360,
        0.00101021767641862,	0.00100929094128929,	0.00100836046177559,	0.00100742623787753,	0.00100648826959511,
        0.00100554655692833,	0.00100460109987718,	0.00100365189844168,	0.00100269895262182,	0.00100174226241759,
        0.00100078182782901,	0.000999817648856059,	0.000998849725498751,	0.000997878057757083,	0.000996902645631053,
        0.000995923489120662,	0.000994940588225910,	0.000993953942946798,	0.000992963553283324,	0.000991969419235490,
        0.000990971540803294,	0.000989969917986738,	0.000988964550785820,	0.000987955439200542,	0.000986942583230902,
        0.000985925982876902,	0.000984905638138541,	0.000983881549015819,	0.000982853715508735,	0.000981822137617291,
        0.000980786815341486,	0.000979747748681320,	0.000978704937636793,	0.000977658382207905,	0.000976608082394656,
        0.000975554038197046,	0.000974496249615075,	0.000973434716648744,	0.000972369439298051,	0.000971300417562997,
        0.000970227651443583,	0.000969151140939807,	0.000968070886051670,	0.000966986886779173,	0.000965899143122314,
        0.000964807655081095,	0.000963712422655514,	0.000962613445845573,	0.000961510724651271,	0.000960404259072607,
        0.000959294049109583,	0.000958180094762198,	0.000957062396030451,	0.000955940952914344,	0.000954815765413876,
        0.000953686833529047,	0.000952554157259857,	0.000951417736606306,	0.000950277571568394,	0.000949133662146121,
        0.000947986008339487,	0.000946834610148492,	0.000945679467573137,	0.000944520580613420,	0.000943357949269342,
        0.000942191573540904,	0.000941021453428104,	0.000939847588930943,	0.000938669980049422,	0.000937488626783539,
        0.000936303529133296,	0.000935114687098691,	0.000933922100679726,	0.000932725769876400,	0.000931525694688712,
        0.000930321875116664,	0.000929114311160255,	0.000927903002819485,	0.000926687950094354,	0.000925469152984861,
        0.000924246611491008,	0.000923020325612794,	0.000921790295350220,	0.000920556520703283,	0.000919319001671987,
        0.000918077738256329,	0.000916832730456310,	0.000915583978271930,	0.000914331481703190,	0.000913075240750088,
        0.000911815255412625,	0.000910551525690802,	0.000909284051584617,	0.000908012833094072,	0.000906737870219165,
        0.000905459162959898,	0.000904176711316269,	0.000902890515288280,	0.000901600574875930,	0.000900306890079218,
        0.000899009460898146,	0.000897708287332713,	0.000896403369382919,	0.000895094707048764,	0.000893782300330248,
        0.000892466149227371,	0.000891146253740133,	0.000889822613868534,	0.000888495229612574,	0.000887164100972253,
        0.000885829227947571,	0.000884490610538528,	0.000883148248745125,	0.000881802142567360,	0.000880452292005234,
        0.000879098697058748,	0.000877741357727900,	0.000876380274012692,	0.000875015445913122,	0.000873646873429192,
        0.000872274556560900,	0.000870898495308248,	0.000869518689671235,	0.000868135139649860,	0.000866747845244125,
        0.000865356806454029,	0.000863962023279572,	0.000862563495720754,	0.000861161223777575,	0.000859755207450035,
        0.000858345446738134,	0.000856931941641872,	0.000855514692161249,	0.000854093698296265,	0.000852668960046920,
        0.000851240477413214,	0.000849808250395148,	0.000848372278992720,	0.000846932563205931,	0.000845489103034782,
        0.000844041898479271,	0.000842590949539400,	0.000841136256215167,	0.000839677818506574,	0.000838215636413619,
        0.000836749709936304,	0.000835280039074627,	0.000833806623828590,	0.000832329464198192,	0.000830848560183433,
        0.000829363911784313,	0.000827875519000831,	0.000826383381832989,	0.000824887500280786,	0.000823387874344222,
        0.000821884504023297,	0.000820377389318012,	0.000818866530228365,	0.000817351926754357,	0.000815833578895988,
        0.000814311486653258,	0.000812785650026167,	0.000811256069014716,	0.000809722743618903,	0.000808185673838730,
        0.000806644859674195,	0.000805100301125300,	0.000803551998192043,	0.000801999950874426,	0.000800444159172447,
        0.000798884623086108,	0.000797321342615408,	0.000795754317760346,	0.000794183548520924,	0.000792609034897141,
        0.000791030776888997,	0.000789448774496492,	0.000787863027719626,	0.000786273536558399,	0.000784680301012811,
        0.000783083321082862,	0.000781482596768552,	0.000779878128069881,	0.000778269914986849,	0.000776657957519457,
        0.000775042255667703,	0.000773422809431588,	0.000771799618811113,	0.000770172683806276,	0.000768542004417078,
        0.000766907580643520,	0.000765269412485600,	0.000763627499943320,	0.000761981843016679,	0.000760332441705676,
        0.000758679296010313,	0.000757022405930589,	0.000755361771466503,	0.000753697392618057,	0.000752029269385250,
        0.000750357401768082,	0.000748681789766553,	0.000747002433380663,	0.000745319332610412,	0.000743632487455800,
        0.000741941897916827,	0.000740247563993493,	0.000738549485685798,	0.000736847662993743,	0.000735142095917326,
        0.000733432784456548,	0.000731719728611410,	0.000730002928381910,	0.000728282383768049,	0.000726558094769828,
        0.000724830061387245,	0.000723098283620302,	0.000721362761468998,	0.000719623494933332,	0.000717880484013306,
        0.000716133728708919,	0.000714383229020170,	0.000712628984947061,	0.000710870996489591,	0.000709109263647760,
        0.000707343786421568,	0.000705574564811015,	0.000703801598816101,	0.000702024888436826,	0.000700244433673190,
        0.000698460234525193,	0.000696672290992835,	0.000694880603076117,	0.000693085170775037,	0.000691285994089596,
        0.000689483073019795,	0.000687676407565632,	0.000685865997727108,	0.000684051843504224,	0.000682233944896978,
        0.000680412301905372,	0.000678586914529404,	0.000676757782769076,	0.000674924906624387,	0.000673088286095336,
        0.000671247921181925,	0.000669403811884153,	0.000667555958202020,	0.000665704360135526,	0.000663849017684671,
        0.000661989930849455,	0.000660127099629878,	0.000658260524025940,	0.000656390204037641,	0.000654516139664981,
        0.000652638330907960,	0.000650756777766578,	0.000648871480240836,	0.000646982438330732,	0.000645089652036267,
        0.000643193121357441,	0.000641292846294255,	0.000639388826846707,	0.000637481063014799,	0.000635569554798529,
        0.000633654302197899,	0.000631735305212908,	0.000629812563843555,	0.000627886078089842,	0.000625955847951768,
        0.000624021873429332,	0.000622084154522536,	0.000620142691231379,	0.000618197483555861,	0.000616248531495982,
        0.000614295835051742,	0.000612339394223141,	0.000610379209010179,	0.000608415279412856,	0.000606447605431172,
        0.000604476187065127,	0.000602501024314722,	0.000600522117179955,	0.000598539465660827,	0.000596553069757339,
        0.000594562929469489,	0.000592569044797278,	0.000590571415740707,	0.000588570042299775,	0.000586564924474481,
        0.000584556062264827,	0.000582543455670811,	0.000580527104692435,	0.000578507009329698,	0.000576483169582600,
        0.000574455585451140,	0.000572424256935320,	0.000570389184035139,	0.000568350366750597,	0.000566307805081694,
        0.000564261499028430,	0.000562211448590805,	0.000560157653768819,	0.000558100114562472,	0.000556038830971765,
        0.000553973802996696,	0.000551905030637266,	0.000549832513893475,	0.000547756252765324,	0.000545676247252811,
        0.000543592497355937,	0.000541505003074703,	0.000539413764409107,	0.000537318781359151,	0.000535220053924833,
        0.000533117582106155,	0.000531011365903116,	0.000528901405315716,	0.000526787700343954,	0.000524670250987832,
        0.000522549057247349,	0.000520424119122505,	0.000518295436613300,	0.000516163009719734,	0.000514026838441807,
        0.000511886922779519,	0.000509743262732870,	0.000507595858301860,	0.000505444709486489,	0.000503289816286757,
        0.000501131178702665,	0.000498968796734211,	0.000496802670381396,	0.000494632799644221,	0.000492459184522684,
        0.000490281825016787,	0.000488100721126528,	0.000485915872851909,	0.000483727280192928,	0.000481534943149587,
        0.000479338861721884,	0.000477139035909821,	0.000474935465713397,	0.000472728151132612,	0.000470517092167466,
        0.000468302288817958,	0.000466083741084090,	0.000463861448965861,	0.000461635412463271,	0.000459405631576320,
        0.000457172106305008,	0.000454934836649335,	0.000452693822609302,	0.000450449064184907,	0.000448200561376151,
        0.000445948314183034,	0.000443692322605557,	0.000441432586643718,	0.000439169106297518,	0.000436901881566958,
        0.000434630912452036,	0.000432356198952754,	0.000430077741069111,	0.000427795538801106,	0.000425509592148741,
        0.000423219901112014,	0.000420926465690927,	0.000418629285885479,	0.000416328361695670,	0.000414023693121500,
        0.000411715280162969,	0.000409403122820076,	0.000407087221092823,	0.000404767574981210,	0.000402444184485235,
        0.000400117049604899,	0.000397786170340202,	0.000395451546691144,	0.000393113178657725,	0.000390771066239946,
        0.000388425209437805,	0.000386075608251303,	0.000383722262680441,	0.000381365172725217,	0.000379004338385633,
        0.000376639759661687,	0.000374271436553381,	0.000371899369060713,	0.000369523557183685,	0.000367144000922295,
        0.000364760700276545,	0.000362373655246434,	0.000359982865831962,	0.000357588332033129,	0.000355190053849935,
        0.000352788031282380,	0.000350382264330463,	0.000347972752994186,	0.000345559497273549,	0.000343142497168550,
        0.000340721752679190,	0.000338297263805469,	0.000335869030547387,	0.000333437052904944,	0.000331001330878141,
        0.000328561864466976,	0.000326118653671450,	0.000323671698491564,	0.000321220998927316,	0.000318766554978708,
        0.000316308366645738,	0.000313846433928408,	0.000311380756826717,	0.000308911335340664,	0.000306438169470251,
        0.000303961259215477,	0.000301480604576342,	0.000298996205552845,	0.000296508062144988,	0.000294016174352770,
        0.000291520542176191,	0.000289021165615251,	0.000286518044669950,	0.000284011179340288,	0.000281500569626266,
        0.000278986215527882,	0.000276468117045137,	0.000273946274178031,	0.000271420686926565,	0.000268891355290737,
        0.000266358279270548,	0.000263821458865999,	0.000261280894077088,	0.000258736584903817,	0.000256188531346184,
        0.000253636733404191,	0.000251081191077836,	0.000248521904367121,	0.000245958873272045,	0.000243392097792607,
        0.000240821577928809,	0.000238247313680650,	0.000235669305048130,	0.000233087552031249,	0.000230502054630007,
        0.000227912812844404,	0.000225319826674440,	0.000222723096120115,	0.000220122621181429,	0.000217518401858382,
        0.000214910438150974,	0.000212298730059206,	0.000209683277583076,	0.000207064080722585,	0.000204441139477734,
        0.000201814453848521,	0.000199184023834947,	0.000196549849437013,	0.000193911930654717,	0.000191270267488061,
        0.000188624859937044,	0.000185975708001665,	0.000183322811681926,	0.000180666170977826,	0.000178005785889364,
        0.000175341656416542,	0.000172673782559359,	0.000170002164317815,	0.000167326801691910,	0.000164647694681644,
        0.000161964843287017,	0.000159278247508029,	0.000156587907344680,	0.000153893822796970,	0.000151195993864900,
        0.000148494420548468,	0.000145789102847675,	0.000143080040762521,	0.000140367234293007,	0.000137650683439131,
        0.000134930388200895,	0.000132206348578297,	0.000129478564571338,	0.000126747036180019,	0.000124011763404339,
        0.000121272746244297,	0.000118529984699895,	0.000115783478771132,	0.000113033228458007,	0.000110279233760522,
        0.000107521494678676,	0.000104760011212469,	0.000101994783361901,	9.92258111269719e-05,	9.64530945076819e-05,
        9.36766335040309e-05,	9.08964281160190e-05,	8.81124783436462e-05,	8.53247841869123e-05,	8.25333456458176e-05,
        7.97381627203617e-05,	7.69392354105450e-05,	7.41365637163675e-05,	7.13301476378289e-05,	6.85199871749292e-05,
        6.57060823276688e-05,	6.28884330960472e-05,	6.00670394800648e-05,	5.72419014797213e-05,	5.44130190950169e-05,
        5.15803923259517e-05,	4.87440211725254e-05,	4.59039056347381e-05,	4.30600457125898e-05,	4.02124414060807e-05,
        3.73610927152105e-05,	3.45059996399795e-05,	3.16471621803874e-05,	2.87845803364345e-05,	2.59182541081205e-05,
        2.30481834954457e-05,	2.01743684984096e-05,	1.72968091170129e-05,	1.44155053512552e-05,	1.15304572011363e-05,
        8.64166466665669e-06,	5.74912774781592e-06,	2.85284644461420e-06,	-4.71792429482481e-08,	-2.95094931487186e-06,
        -5.85846377115642e-06,	-8.76972261180171e-06,	-1.16847258368082e-05,	-1.46034734461756e-05,	-1.75259654399039e-05,
        -2.04522018179932e-05,	-2.33821825804435e-05,	-2.63159077272547e-05,	-2.92533772584270e-05,	-3.21945911739601e-05,
        -3.51395494738541e-05,	-3.80882521581091e-05,	-4.10406992267253e-05,	-4.39968906797021e-05,	-4.69568265170402e-05,
        -4.99205067387390e-05,	-5.28879313447989e-05,	-5.58591003352196e-05,	-5.88340137100014e-05,	-6.18126714691442e-05,
        -6.47950736126479e-05,	-6.77812201405126e-05,	-7.07711110527380e-05,	-7.37647463493246e-05,	-7.67621260302721e-05,
        -7.97632500955806e-05,	-8.27681185452502e-05,	-8.57767313792805e-05,	-8.87890885976718e-05,	-9.18051902004241e-05,
        -9.48250361875373e-05,	-9.78486265590117e-05,	-0.000100875961314847,	-0.000103907040455043,	-0.000106941863979600,
        -0.000109980431888518,	-0.000113022744181797,	-0.000116068800859437,	-0.000119118601921438,	-0.000122172147367800,
        -0.000125229437198523,	-0.000128290471413607,	-0.000131355250013051,	-0.000134423772996857,	-0.000137496040365024,
        -0.000140572052117551,	-0.000143651808254440,	-0.000146735308775690,	-0.000149822553681300,	-0.000152913542971272,
        -0.000156008276645604,	-0.000159106754704298,	-0.000162208977147352,	-0.000165314943974767,	-0.000168424655186543,
        -0.000171538110782681,	-0.000174655310763179,	-0.000177776255128038,	-0.000180900943877258,	-0.000184029377010839,
        -0.000187161554528781,	-0.000190297476431084,	-0.000193437142717748,	-0.000196580553388773,	-0.000199727708444159,
        -0.000202878607883906,	-0.000206033251708014,	-0.000209191639916482,	-0.000212353772509312,	-0.000215519649486503,
        -0.000218689270848054,	-0.000221862636593967,	-0.000225039746724241,	-0.000228220601238875,	-0.000231405200137870,
        -0.000234593543421227,	-0.000237785631088944,	-0.000240981463141023,	-0.000244181039577462,	-0.000247384360398262,
        -0.000250591425603423,	-0.000253802235192945,	-0.000257016789166829,	-0.000260235087525073,	-0.000263457130267678,
        -0.000266682917394644,	-0.000269912448905971,	-0.000273145724801659,	-0.000276382745081707,	-0.000279623509746117,
        -0.000282868018794888,	-0.000286116272228020,	-0.000289368270045513,	-0.000292624012247366,	-0.000295883498833581,
        -0.000299146729804157,	-0.000302413705159093,	-0.000305684424898390,	-0.000308958889022049,	-0.000312237097530068,
        -0.000315519050422449,	-0.000318804747699190,	-0.000322094189360292,	-0.000325387375405756,	-0.000328684305835580,
        -0.000331984980649765,	-0.000335289399848311,	-0.000338597563431218,	-0.000341909471398486,	-0.000345225123750115,
        -0.000348544520486105,	-0.000351867661606456,	-0.000355194547111168,	-0.000358525177000241,	-0.000361859551273675,
        -0.000365197669931470,	-0.000368539532973625,	-0.000371885140400142,	-0.000375234492211020,	-0.000378587588406258,
        -0.000381944428985858,	-0.000385305013949818,	-0.000388669343298140,	-0.000392037417030822,	-0.000395409235147866,
        -0.000398784797649270,	-0.000402164104535035,	-0.000405547155805162,	-0.000408933951459649,	-0.000412324491498497,
        -0.000415718775921706,	-0.000419116804729276,	-0.000422518577921207,	-0.000425924095497499,	-0.000429333357458152,
        -0.000432746363803166,	-0.000436163114532541,	-0.000439583609646277,	-0.000443007849144374,	-0.000446435833026832,
        -0.000449867561293650,	-0.000453303033944830,	-0.000456742250980371,	-0.000460185212400272,	-0.000463631918204535,
        -0.000467082368393159,	-0.000470536562966143,	-0.000473994501923489,	-0.000477456185265195,	-0.000480921612991262,
        -0.000484390785101691,	-0.000487863701596480,	-0.000491340362475630,	-0.000494820767739141,	-0.000498304917387014,
        -0.000501792811419247,	-0.000505284449835841,	-0.000508779832636796,	-0.000512278959822112,	-0.000515781831391789,
        -0.000519288447345827,	-0.000522798807684225,	-0.000526312912406985,	-0.000529830761514106,	-0.000533352355005588,
        -0.000536877692881431,	-0.000540406775141634,	-0.000543939601786199,	-0.000547476172815124,	-0.000551016488228411,
        -0.000554560548026059,	-0.000558108352208067,	-0.000561659900774436,	-0.000565215193725167,	-0.000568774231060258,
        -0.000572337012779710,	-0.000575903538883524,	-0.000579473809371698,	-0.000583047824244233,	-0.000586625583501129,
        -0.000590207087142386,	-0.000593792335168004,	-0.000597381327577983,	-0.000600974064372323,	-0.000604570545551024,
        -0.000608170771114086,	-0.000611774741061509,	-0.000615382455393293,	-0.000618993914109438,	-0.000622609117209943,
        -0.000626228064694810,	-0.000629850756564037,	-0.000633477192817626,	-0.000637107373455576,	-0.000640741298477886,
        -0.000644378967884558,	-0.000648020381675590,	-0.000651665539850984,	-0.000655314442410738,	-0.000658967089354853,
        -0.000662623480683330,	-0.000666283616396167,	-0.000669947496493365,	-0.000673615120974924,	-0.000677286489840844,
        -0.000680961603091125,	-0.000684640460725767,	-0.000688323062744770,	-0.000692009409148134,	-0.000695699499935859,
        -0.000699393335107945,	-0.000703090914664392,	-0.000706792238605199,	-0.000710497306930368,	-0.000714206119639898,
        -0.000717918676733789,	-0.000721634978212040,	-0.000725355024074653,	-0.000729078814321626,	-0.000732806348952961,
        -0.000736537627968656,	-0.000740272651368713,	-0.000744011419153130,	-0.000747753931321908,
};
double ebState[2002];
FIRstate_T ebfilter = { .numTaps = 1001,
            .istate  = 0,
            .pState  = ebState,
            .pCoeffs = ebfilter_coeffs
            };

/* privert method */
static void fir_double_z(double *indat, double *outdat, int len, FIRstate_T *fst)
{
    double accum;
    int ii, idx, state = fst->istate;

    const double *p_h;
    double *p_z;


    for(idx=0; idx<len; idx++)
    {
        /* store input at the beginning of the delay line as well as ntaps more */
        fst->pState[state] = fst->pState[state + fst->numTaps] = indat[idx];

        /* calculate the filter */
        p_h = fst->pCoeffs;
        p_z = fst->pState + fst->istate;

        accum = 0;
        for (ii = 0; ii < fst->numTaps; ii++)
        {
            accum += *p_h++ * *p_z++;
        }

        /* decrement state, wrapping if below zero */
        if (--state < 0) {
            state +=  fst->numTaps;
        }
        fst->istate = state; /* return new state to caller */
        outdat[idx] = accum;
    }
}

static void Ecg_removeBaseline(double *input, double *output, int len)
{
    //assert (Len < ebfilter.numTaps/2);
    //
    int i, state;
    double *tmpdat  = (double*)calloc(len, sizeof(double));
    fir_double_z(input, tmpdat, len, &ebfilter);

    for(i=0, state=ebfilter.istate+len+(ebfilter.numTaps+1)/2; i<len; i++, state--)
    {
        output[i] = ebfilter.pState[state] - tmpdat[i];
    }
}

/************************************************************************/
/* src为原始数据，dst为滤波后结果，len为输入数据长度（数据点个数）
返回值outlen为输出滤波后数据长度
（因波形起始处会畸变，需去掉，故小于输入长度，目前的滤波器会减少201点）*/
/************************************************************************/
int my_filter(double const *src,double *dst,int len)
{
    if(src == NULL || dst == NULL || len<201)
    {
        return 0;
    }
    double sum = 0;
    int i, j;
    //int N = 3*len;
    ////数据延拓
    //double *data=(double *)calloc(N,sizeof(double));
    //for(i=0;i<len;i++)
    //{
    //	data[i]=src[len-i-1];
    //	data[2*len+i]=src[len-i-1];
    //}
    //for(i=0;i<len;i++)
    //{
    //	data[i+len]=src[i];
    //}
    double *data_lp=(double *)calloc(len,sizeof(double));
    //0-40 low pass fir filter
    double b[] = {-2.49939870689846e-19,	-6.42670110592360e-05,	-0.000126833377254920,	-0.000184633240486872,
        -0.000234548351952457,	-0.000273478101958888,	-0.000298449482449997,	-0.000306771591638274,	-0.000296232329902181,
        -0.000265327256792922,	-0.000213503048842499,	-0.000141391531522019,	-5.10057262510003e-05,	5.41325107414032e-05,
        0.000168962360534509,	0.000286975791118926,	0.000400447494845365,	0.000500808386513992,	0.000579154980041613,
        0.000626872831567505,	0.000636338275127471,	0.000601650228861446,	0.000519334246342653,	0.000388955424061570,
        0.000213576192850239,	-6.70872606797806e-19,	-0.000241247426496937,	-0.000496231492031623,	-0.000748228513573709,
        -0.000978639745396982,	-0.00116816219245839,	-0.00129815383037096,	-0.00135210844881791,	-0.00131713752003599,
        -0.00118534513241762,	-0.000954978620034798,	-0.000631243044098671,	-0.000226682490712754,	0.000238945118054209,
        0.000739341434844129,	0.00124289343742443,	0.00171441436360098,	0.00211732060293436,	0.00241612557874509,
        0.00257909743649307,	0.00258090166246110,	0.00240503517007988,	0.00204585684498851,	0.00151003213651511,
        0.000817236157334425,	-1.68709412715646e-18,	-0.000897363343599875,	-0.00182075686839449,	-0.00270915963246305,
        -0.00349822186227775,	-0.00412440646697335,	-0.00452943557987484,	-0.00466476096163301,	-0.00449575392418084,
        -0.00400530655602134,	-0.00319655295127927,	-0.00209445701934297,	-0.000746070996215034,	0.000780656709746723,
        0.00239955823493203,	0.00401034611412499,	0.00550397757381676,	0.00676903169525384,	0.00769876577559599,
        0.00819845186008093,	0.00819255096590246,	0.00763126492847945,	0.00649601651903026,	0.00480344821716343,
        0.00260759762691062,	-2.70331564751511e-18,	-0.00289241905015963,	-0.00591167100560782,	-0.00887512928615579,
        -0.0115837969890017,	-0.0138320410219482,	-0.0154183117158493,	-0.0161562872764043,	-0.0158858331591251,
        -0.0144831516676451,	-0.0118695188034352,	-0.00801806344813574,	-0.00295813590315619,	0.00322306593878704,
        0.0103818004522189,	0.0183220449900812,	0.0268025817645752,	0.0355466106793485,	0.0442534459023328,	0.0526117284346342,
        0.0603134925526133,	0.0670683657654135,	0.0726171637276426,	0.0767441649053693,	0.0792874137655850,	0.0801465024594331,
        0.0792874137655850,	0.0767441649053693,	0.0726171637276426,	0.0670683657654135,	0.0603134925526133,	0.0526117284346342,
        0.0442534459023328,	0.0355466106793485,	0.0268025817645752,	0.0183220449900812,	0.0103818004522189,	0.00322306593878704,
        -0.00295813590315619,	-0.00801806344813574,	-0.0118695188034352,	-0.0144831516676451,	-0.0158858331591251,
        -0.0161562872764043,	-0.0154183117158493,	-0.0138320410219482,	-0.0115837969890017,	-0.00887512928615579,
        -0.00591167100560782,	-0.00289241905015963,	-2.70331564751511e-18,	0.00260759762691062,	0.00480344821716343,
        0.00649601651903026,	0.00763126492847945,	0.00819255096590246,	0.00819845186008093,	0.00769876577559599,
        0.00676903169525384,	0.00550397757381676,	0.00401034611412499,	0.00239955823493203,	0.000780656709746723,
        -0.000746070996215034,	-0.00209445701934297,	-0.00319655295127927,	-0.00400530655602134,	-0.00449575392418084,
        -0.00466476096163301,	-0.00452943557987484,	-0.00412440646697335,	-0.00349822186227775,	-0.00270915963246305,
        -0.00182075686839449,	-0.000897363343599875,	-1.68709412715646e-18,	0.000817236157334425,	0.00151003213651511,
        0.00204585684498851,	0.00240503517007988,	0.00258090166246110,	0.00257909743649307,	0.00241612557874509,
        0.00211732060293436,	0.00171441436360098,	0.00124289343742443,	0.000739341434844129,	0.000238945118054209,
        -0.000226682490712754,	-0.000631243044098671,	-0.000954978620034798,	-0.00118534513241762,	-0.00131713752003599,
        -0.00135210844881791,	-0.00129815383037096,	-0.00116816219245839,	-0.000978639745396982,	-0.000748228513573709,
        -0.000496231492031623,	-0.000241247426496937,	-6.70872606797806e-19,	0.000213576192850239,	0.000388955424061570,
        0.000519334246342653,	0.000601650228861446,	0.000636338275127471,	0.000626872831567505,	0.000579154980041613,
        0.000500808386513992,	0.000400447494845365,	0.000286975791118926,	0.000168962360534509,	5.41325107414032e-05,
        -5.10057262510003e-05,	-0.000141391531522019,	-0.000213503048842499,	-0.000265327256792922,	-0.000296232329902181,
        -0.000306771591638274,	-0.000298449482449997,	-0.000273478101958888,	-0.000234548351952457,	-0.000184633240486872,
        -0.000126833377254920,	-6.42670110592360e-05,	-2.49939870689846e-19};

        int outlen = len - 201; //返回滤波后结果长度为原长度去掉滤波系数长度
        for (i=0; i<200; i++)
            data_lp[i] = src[i];
        for (i=200; i<len; i++)
        {
            for(j=0; j<201; j++)
            {
                sum += b[j] * src[i-j];
            }
            data_lp[i] = sum;
            sum = 0;
        }

        //消除基线漂移
        Ecg_removeBaseline(data_lp, dst, len);

        ////数据延拓
        //double *data_tmp = (double *)calloc(N+100,sizeof(double));
        //for(i=0; i<50; i++)
        //{
        //	data_tmp[i] = data_lp[49-i];
        //	data_tmp[N+50+i] = data_lp[N-i-1];
        //}
        //for(i=0;i<N;i++)
        //{
        //	data_tmp[i+50] = data_lp[i];
        //}
        ////中值处理冒泡排序
        //double temp = 0;
        //double *median = (double *)calloc(N,sizeof(double));
        //double *tmp_vector = (double *)calloc(101,sizeof(double));
        //for(i=0;i<N;i++)
        //{

        //	for(j=0;j<101;j++)
        //	{
        //		tmp_vector[j] = data_tmp[j+i];
        //	}

        //	for(j=0;j<101;j++)
        //	{
        //		for (k=0; k<100-j; k++)
        //		{
        //			if (tmp_vector[k]>tmp_vector[k+1])
        //			{
        //				temp = tmp_vector[k];
        //				tmp_vector[k] = tmp_vector[k+1];
        //				tmp_vector[k+1] = temp;
        //			}
        //		}
        //	}
        //	median[i] = tmp_vector[50];
        //}
        ////1000点平滑后再平滑
        //double *data_tmp1 = (double *)calloc(N+1000,sizeof(double));
        //for(i=0;i<500;i++)
        //{
        //	data_tmp1[i] = median[499-i];
        //	data_tmp1[N+500+i] = median[N-i-1];
        //}
        //for(i=0;i<N;i++)
        //{
        //	data_tmp1[i+500] = median[i];
        //}
        //sum = 0;
        //double *pinghua = (double *)calloc(N+1000,sizeof(double));
        //for(i=0; i<N; i++)
        //{
        //	for(int count=0;count<1001;count++)
        //	{
        //		sum+=data_tmp1[i+count];
        //	}
        //	sum = sum/1001;
        //	pinghua[i] = sum;
        //	sum = 0;
        //}


        //for(i=0; i<500; i++)
        //{
        //	data_tmp1[i] = pinghua[499-i];
        //	data_tmp1[N+500+i] = pinghua[N-i-1];
        //}
        //for(i=0; i<N; i++)
        //{
        //	data_tmp1[i+500] = pinghua[i];
        //}
        //sum = 0;

        //for(i=0; i<N; i++)
        //{
        //	for(int count=0;count<1001;count++)
        //	{
        //		sum += data_tmp1[i+count];
        //	}
        //	sum = sum/1001;
        //	pinghua[i] = sum;
        //	sum = 0;
        //}
        ////相减
        //double *data_median = (double *)calloc(N,sizeof(double));
        //for(i=0;i<N;i++)
        //{
        //	data_median[i] = data_lp[i] - pinghua[i];
        //}
        ////10点平滑
        //double *data_final=(double *)calloc(N,sizeof(double));
        ////数据延拓
        //double *data_temp=(double *)calloc(N+10,sizeof(double));
        //for(i=0;i<5;i++)
        //{
        //	data_temp[i] = data_median[4-i];
        //	data_temp[N+5+i] = data_median[N-i-1];
        //}
        //for(i=0;i<N;i++)
        //{
        //	data_temp[i+5] = data_median[i];
        //}
        ////平滑处理
        //for(i=0; i<N; i++)
        //{
        //	for(int count=0;count<11;count++)
        //	{
        //		sum += data_temp[i+count];
        //	}
        //	sum = sum/11;
        //	data_final[i] = sum;
        //	sum = 0;
        //}

        //for(i=0; i<len; i++)
        //{
        //	dst[i] = data_final[i+len];
        //}

        /*for(i=201; i<len; i++)
            dst[i-201] = data_lp[i];*/


        //free(data);
        free(data_lp);
        //free(data_tmp);
        //free(median);
        //free(data_tmp1);
        //free(pinghua);
        //free(data_median);
        //free(tmp_vector);
        //free(data_temp);
        //free(data_final);
        return outlen;

}



